The present invention relates generally to computing systems, and more particularly to a method and apparatus for providing collaboration between applications operating in an information system.
Corporations have spent billions of dollars a year to implement custom, standalone information systems that address specific business domain functionality requirements such as accounting, payroll, manufacturing, and distribution. By creating these separate, standalone systems, each individual section of the business process became isolated from the others.
Over time, Corporate Information Technology (CIT) departments began shifting away from in-house development of these custom systems and have attempted to minimize costs by purchasing enterprise applications on the outside. Enterprise applications are more generic, providing general business functionality in a pre-packaged product. Typically, enterprise applications include heterogeneous combinations of application systems, hardware platforms, operating systems, third- and fourth-generation languages, databases, network protocols, and management tools. While these applications bring tremendous benefits to the companies that implement them, on an enterprise level, they only exacerbate the proliferation of "process islands" because they are not readily integratable.
Stand-alone enterprise applications provide powerful tools for handling many business processes. However, some functionality is often duplicated in separate applications, driving up the cost when bundling enterprise applications. Custom functional integration between enterprise applications, while desirable, is generally cost prohibitive, and defeats the benefits of the make-versus-buy decision to purchase the enterprise application in the first place. Tool and middleware vendors offer solutions for data integration, but not function integration, and even those solutions require significant custom coding to implement.